package org.csu.mypetstore.api.service;

import org.csu.mypetstore.api.common.CommonResponse;
import org.csu.mypetstore.api.vo.AccountVO;

public interface AccountService {

    /**
     * 用于登录认证，根据用户名和密码获取用户信息
     * @param username 用户名
     * @param password 密码
     * @return 成功获取的用户信息 / 失败信息
     */
    CommonResponse<AccountVO> getAccount(String username, String password);

    /**
     * 登录后获取信息，根据用户名获取用户信息
     * @param username 用户名
     * @return 成功获取的用户信息 / 失败信息
     */
    CommonResponse<AccountVO> getAccount(String username);

    /**
     * 判断用户名是否已存在(是否可用)
     * @param username 用户名
     * @return 存在 / 不存在 信息
     */
    CommonResponse usernameExist(String username);

    /**
     * 新建用户
     * @param username 用户名
     * @param password 密码
     * @return 新建成功 / 失败信息
     */
    CommonResponse insertAccount(String username, String password);

    /**
     * 更新用户信息（不包含密码）
     * @param accountVO 用户信息
     * @return 更新成功 / 失败信息
     */
    CommonResponse updateAccount(AccountVO accountVO);

    /**
     * 修改用户密码
     * @param username 用户名
     * @param curPw 原密码
     * @param newPw 新密码
     * @return 修改成功 / 失败信息
     */
    CommonResponse updatePassword(String username, String curPw, String newPw);
}
